Computing systems are currently in wide use. Some computing systems are used to host a variety of different services.
The services can be hosted in different domains. A domain is defined in a number of different ways. For instance, a domain is defined by a domain name, so that two different services (or bodies of code) that have different domain names, run in different domains. In another definition, a domain is also defined as a microservice. A microservice is a process that communicates with another microservice (or process) over a network (through a network interface) using a technology-agnostic protocol, such as the hypertext protocol (HTTP). A microservice is independently deployable relative to other microservices. A single application may be decomposed into microservices. In such a case, the application is structured as a collection of loosely coupled microservices. Each of these microservices is considered a different domain.
It is common in such computing systems that event handlers are invoked when a process raises an event. In-line event handlers are event handlers that are currently in the same domain that runs the invoking process and that are executed synchronously with the code that raised the event (or the invoking process that was the source of the event).
Running event handler logic in-line with the code that raised the event allows the event handler to inject logic (such as validating data or failing an operation) into the code that was the source of the event. By way of example, before an operation saves data to disc, an event handler can update the computed data, while another event handler can fail the operation because the data is invalid.
However, it may be that an event handler in a separate domain (or microservice) from the domain (or microservice) that raised the event is interested in the event. Currently, event handlers in other domains or microservices (outside the one that raised the event) are called asynchronously. However, this makes it difficult to process the results from that asynchronous event handler prior to completion of the operation that raised the event. Thus, these event handlers are not injecting logic, as an in-line event handler does.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.